1. Field of the Invention
The present invention relates to a semiconductor device, and more particularly to a ROM data patch circuit, an embedded system including the same and a method of patching ROM data.
2. Description of Related Art
An embedded system typically includes a microprocessor for controlling a system such as a mechanical apparatus, an electronic apparatus, etc. The embedded system may be implemented, typically, in a form of one-chip. Software for operating an apparatus is not read from an external memory, but is stored in the chip of the embedded system.
A typical embedded system stores programs to be executed and data used in operating the system in a read only memory (ROM). The use of a random access memory (RAM), as opposed to ROM, would enable the modification of the stored programs and the data. However, the production cost of an embedded system including RAM as a storage device is relatively high in comparison with an embedded system including ROM as a storage device.
Accordingly, in a typical embedded system, programs and data are stored in a RAM for system development, and then stored in a ROM after system development is completed.
FIG. 1 is a block diagram illustrating a data access path of an embedded system.
Referring to FIG. 1, the embedded system 100 includes a processor 110, a in program ROM 120, a data ROM 130, and a RAM 140. The processor 110 outputs a read ROM address through an address bus 160 to read programs and data stored in the ROMs 120 and 130. The read program code and the read data are transferred to the processor 110 through a data bus 150 or stored in the RAM 140.
After system development is completed, the program and/or the data may need to be modified or upgraded, for example, in a case where an error occurs in the program codes or the data stored in the ROM is to be modified or upgraded for improving system performance.
In these and other cases, discarding already manufactured products and manufacturing new chips for storing modified program codes and data is inefficient. In addition, because program codes and data are stored in the ROM during the manufacturing process of semiconductor memory devices, changing the manufacturing process for a new chip incurs time and monetary costs. Therefore, it can be difficult when a portion of the data and programs stored in the ROM needs to be modified with patch program codes and/or patch data using already established products.
As disclosed in U.S. Pat. No. 5,940,850, an apparatus and a method of patching programs stored in the ROM are available, but an apparatus and a method of patching data stored in the ROM is not widely used. Because the data stored in the ROM are in a form of a fixed table value, the possibility of error is relatively low. The possibility of error, however, is not zero, and as described above, and upgrades to the data stored in the ROM are needed so as to improve system performance etc.
A method of patching data stored in the ROM may be similar to a method of patching a program. In case of patching a program, a method for determining a start address of a program block to be modified and shifting the start address of the ROM to a corresponding address of a RAM is needed. In case of patching data, however, a complex comparator is needed because a data block may not be definitely defined. For complex data patch circuits, outputting a read address to an address bus after a read command may be delayed, and such a delay may degrade performance of the system.
Therefore, an apparatus and a method of patching ROM data are needed, in which an already established data ROM may be used without degrading system performance.